package org.pb.org.mapper;

import org.pb.basic.mapper.BaseMapper;
import org.pb.org.domain.Department;
import org.pb.org.query.DepartmentQuery;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 部门表对应的持久层接口
 * @author
 */
@Repository
public interface DepartmentMapper extends BaseMapper<Department, DepartmentQuery> {

    /**
     * 获取到所有一级部门及其子部门
     * @return 一级部门及其子部门的数据信息
     */
    List<Department> findTree();

    /**
     * 根据Id修改部门层级
     * @param department 需要修改的部门信息
     */
    void updateDirPath(Department department);

    /**
     * 根据员工id修改当前经理的id
     * @param id 要修改的经理的id
     */
    void updateByManager(Long id);

    /**
     * 批量修改部门经理id为集合中id的数据，将对应id的manager_id修改为空
     * @param ids 存放员工id【manager_id】的集合
     */
    void batchUpdateByManaderId(List<Long> ids);
}
